import requests
from base_tools.my_logger import logger
import traceback

class BaseApi():

    def my_request(self, method, url, params, **kwargs):
        """
        请求方法的封装
        :param method: 请求方式，get/post
        :param url: 请求的url
        :param params: 请求url中的传参
        :param kwargs: 不定长参数，可以传请求体参数
        :return:
        """
        logger.info(f"请求接口：{url}，请求方式：{method}，url参数：{params}，请求参数：{kwargs}")
        try:
            # 进行接口请求
            response = requests.request(method=method, url=url, params=params, **kwargs)
            # 返回响应的json数据
            return response.json()
        except:
            logger.warning("接口请求失败，报错信息为：{}".format(traceback.format_exc()))
            raise Exception("接口请求失败，请检查接口信息。。。。")

    def get_token(self, url, corpid, corpsecret):
        """
        获取token方法封装
        :return:
        """
        logger.info("获取token。。。。。。")
        token_url = url
        method = 'get'
        params = {
            "corpid": corpid,
            "corpsecret": corpsecret
        }
        token_data = BaseApi().my_request(method=method, url=token_url, params=params)
        self.token = token_data.get("access_token")
